package collection;
/*
Collections为集合的工具类，里面定义了很多静态方法用于操作集合
Collections.sort(List list)方法是:可以多list集合进行自然排序（从小到大），但是其要求;ist集合中的元素必须是可比较的，
判断是否可以比较的标准是原始是否实现了Comparable接口，若是没有实现该接口，则直接发生编译错误，但是在实际开发中，我们一般是不会
让我们自己写的类去实现Comparable接口的，
 */
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortPoint {
    public static void main(String[] args) {
        List<Point> list=new ArrayList<>();
        list.add(new Point(2,3));
        list.add(new Point(56,89));
        list.add(new Point(98,45));
        list.add(new Point(12,65));
        list.add(new Point(35,75));
        list.add(new Point(98,28));
        System.out.println("list原始数据:"+list);

        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()- o2.getX();
            }
        });
        //自定义排序规则:
//        Collections.sort(list, new Comparator<Point>() {
//            public int compare(Point o1, Point o2) {
//                int a=o1.getX()*o1.getX()+o1.getY()*o1.getY();
//                int b= o2.getX()* o2.getX()+ o2.getY()*o2.getY();
//                //return a-b;//升序
//                return b-a;//降序
//            }
//        });
        Collections.sort(list,(o1,o2)->{
            int a=o1.getX()*o1.getX()+o1.getY()*o1.getY();
            int b= o2.getX()* o2.getX()+ o2.getY()*o2.getY();
            return a-b;
        });
        System.out.println("list排序之后:"+list);


    }
}
